package com.mxwl.cbg.common.model.es;

import com.mxwl.cbg.common.model.base.BaseModel;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.List;
import java.util.Map;

@EqualsAndHashCode(callSuper = true)
@Data
@Schema(description = "装备存储在ES上的对应实体模型")
public class ESEquipment extends BaseModel {


    @Schema(description = "高亮属性")
    private String highlight;
    @Schema(description = "面板提取属性")
    private Map<String, Double> attributes;
    @Schema(description = "是否独立装备")
    private Boolean is_split_independent_equip;
    @Schema(description = "显示新DIY")
    private Boolean show_new_diy;
    @Schema(description = "元描述")
    private String meta_desc;
    @Schema(description = "是否未鉴定")
    private Boolean is_weijianding;

    @Schema(description = "制造者")
    private String maker;
    @Schema(description = "是否是强化打造")
    private Boolean is_qhdz;
    @Schema(description = "锻炼等级")
    private Integer enhanceLevel;
    @Schema(description = "宝石列表")
    private List<Integer> gemstones;
    @Schema(description = "耐久度")
    private Integer durability;
    @Schema(description = "五行属性")
    private String wuxing;
    @Schema(description = "特效列表")
    private List<Integer> effects;
    @Schema(description = "门派条件")
    private String sect_condition;
    @Schema(description = "部位条件列表")
    private List<String> part_conditions;
    @Schema(description = "符文组合")
    private String rune_combo;
    @Schema(description = "特殊技能")
    private String special_skill;
    @Schema(description = "修理失败次数")
    private Integer repair_fail_count;
    @Schema(description = "精炼效果映射")
    private Map<String, Double> refining_effects;
    @Schema(description = "增益效果")
    private String buff;
    @Schema(description = "星级属性映射")
    private Map<String, Double> star_attributes;
    @Schema(description = "套装效果")
    private String set_effect;
    @Schema(description = "孔信息")
    private Map<String, Integer> holes_info;
    @Schema(description = "星相互合加成属性")
    private Map<String, Double> xxhh_attribute;
    @Schema(description = "是否幻化")
    private Boolean is_huanhua;
    @Schema(description = "是否是系统产出")
    private Boolean is_system_output;

    @Schema(description = "是否是混合宝石（混打）")
    private Boolean is_mixed_gemstones;
    @Schema(description = "是否开启星位")
    private Boolean is_stared;

    //以下4组属性是从other_info中提取，原则上是官方数据数值绝对没问题，但是好像缺失什么
    @Schema(description = "主属性")
    private Map<String, Double> main_attrs;
    @Schema(description = "副属性")
    private Map<String, Double> vice_attrs;
    @Schema(description = "熔炼属性")
    private Map<String, Double> melt_attrs;
    //聚合属性（熔炼+副属性）
//    private Map<String, Double> agg_added_attrs;

}
